import book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

public class Main {

    //可以利用返回值 的向上转型 达到返回的一致性
    public static User login(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name = scanner.nextLine();

        System.out.println("请输入你的身份：1-》管理员  0-》普通用户");
        int choice = scanner.nextInt();
        if (choice == 1){
            //要实例化一个对象
            AdminUser adminUser = new AdminUser(name);
            return adminUser;

            //return new AdminUser(name);
        }else {
            NormalUser normalUser = new NormalUser(name);
            return normalUser;
        }
    }
    public static void main(String[] args) {
        BookList bookList = new BookList();

        User user = login();

        //user是哪个对象？ choice是几？ ---》 能够确定：我能够操作哪个对象的哪个方法？
        //通过这两个变量 可以确定了 但是怎么联系起来？？
        /**
         * 1. 先让双方 存好 对应自己的操作
         * 2. 就是调用对应的操作！
         */
        while(true) {
            int choice = user.menu();//调用菜单之后的返回值用ret接收

            user.doOperation(choice, bookList);
        }
    }
}